home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #5 / Amiga Plus CD - 2000 - No. 5.iso / Tools / Libs / Identify / identify.doc < prev    next >
Encoding:
Text File  |  1997-10-30  |  22.5 KB  |  642 lines

  1. TABLE OF CONTENTS
  2.  
  3. identify.library/IdAlert
  4. identify.library/IdExpansion
  5. identify.library/IdFunction
  6. identify.library/IdHardware
  7. identify.library/IdHardwareNum
  8. identify.library/IdHardwareUpdate
  9.  
  10. identify.library/IdAlert                              identify.library/IdAlert
  11.  
  12.    NAME
  13.         IdAlert - get description of an alert (V3)
  14.  
  15.    SYNOPSIS
  16.         Error = IdAlert(Code,TagList)
  17.         D0.l            D0.l   A0.l
  18.  
  19.         LONG IdAlert(ULONG, struct TagItem *);
  20.  
  21.         Error = IdAlertTags(Code,Tag1,...)
  22.  
  23.         LONG IdAlertTags(ULONG, ULONG,...);
  24.  
  25.    FUNCTION
  26.         Get a human readable description of the alert ('Guru') code.
  27.  
  28.    INPUTS
  29.         Code          -- (ULONG) alert code, as defined in exec/alerts.h
  30.  
  31.         TagList       -- (struct TagItem *) tags that describe further
  32.                          options.
  33.  
  34.    RESULT
  35.         Error         -- (LONG) error code, or 0 if everything went fine.
  36.  
  37.    TAGS
  38.         IDTAG_DeadStr           -- (STRPTR) Alert type string (deadend or
  39.                 recoverable). You may skip this tag if you do not want to get
  40.                 the string.
  41.  
  42.         IDTAG_SubsysStr         -- (STRPTR) String of the subsystem that caused
  43.                 the alert (CPU, exec.library, ...). You may skip this tag if you
  44.                 do not want to get the string.
  45.  
  46.         IDTAG_GeneralStr        -- (STRPTR) General alert cause. You  may skip
  47.                 this tag if you do not want to get the string.
  48.  
  49.         IDTAG_SpecStr           -- (STRPTR) Specified alert cause. You may skip
  50.                 this tag if you do not want to get the string.
  51.  
  52.         IDTAG_StrLength         -- (UWORD) Maximum length of the string buffer,
  53.                 including termination. Defaults to 50.
  54.  
  55.         IDTAG_Localize          -- [V8] (BOOL) FALSE to get English strings
  56.                 only, TRUE for localized strings. This is useful for applications
  57.                 with English as only language. Defaults to TRUE.
  58.  
  59.    NOTE
  60.         This call is guaranteed to preserve all registers except D0.
  61.  
  62.    BUGS
  63.  
  64.    SEE ALSO
  65.  
  66. identify.library/IdExpansion                      identify.library/IdExpansion
  67.  
  68.    NAME
  69.         IdExpansion - get name of expansion board (V3)
  70.  
  71.    SYNOPSIS
  72.         Error = IdExpansion(TagList)
  73.         D0.l                  A0.l
  74.  
  75.         LONG IdExpansion(struct TagItem *);
  76.  
  77.         Error = IdExpansionTags(Tag1,...)
  78.  
  79.         LONG IdExpansionTags(ULONG,...);
  80.  
  81.    FUNCTION
  82.         Gets the name and class of the expansion and it's manufacturer.
  83.  
  84.    INPUTS
  85.         TagList       -- (struct TagItem *) tags that describe further
  86.                          options.
  87.    RESULT
  88.         Error         -- (LONG) error code, or 0 if everything went fine.
  89.  
  90.                 IDERR_NOLENGTH  -- IDTAG_StrLength has been set to 0!
  91.                 IDERR_BADID     -- IDTAG_ManufID and IDTAG_ProdID were
  92.                         out of range or one of them was missing.
  93.                 IDERR_DONE      -- Checked all expansions using the
  94.                         IDTAG_Expansion tag. This is not really an error.
  95.                 IDERR_SECONDARY -- This expansion is secondary to a primary
  96.                         expansion entry.
  97.  
  98.    TAGS
  99.         IDTAG_ConfigDev         -- (struct ConfigDev *) ConfigDev structure
  100.                 containing all information. You should use this tag if ever
  101.                 possible, since there are more possibilities to recognize and
  102.                 distinguish between a board.
  103.  
  104.         IDTAG_ManufID           -- (UWORD) Manufacturer ID if ConfigDev is not
  105.                 provided. You must also provide IDTAG_ProdID!
  106.  
  107.         IDTAG_ProdID            -- (UBYTE) Product ID if ConfigDev is not
  108.                 provided. You must also provide IDTAG_ManufID!
  109.  
  110.         IDTAG_ManufStr          -- (STRPTR) Pointer to a buffer space for the
  111.                 manufacturer name. You may skip this tag if you do not want
  112.                 to get this string.
  113.  
  114.         IDTAG_ProdStr           -- (STRPTR) Pointer to a buffer space for the
  115.                 product name. You may skip this tag if you do not want to get
  116.                 this string.
  117.  
  118.         IDTAG_ClassStr          -- (STRPTR) Pointer to a buffer space for the
  119.                 product class. You may skip this tag if you do not want to get
  120.                 this string.
  121.  
  122.         IDTAG_StrLength         -- (UWORD) Buffer length, including
  123.                 termination. Defaults to 50.
  124.  
  125.         IDTAG_Expansion         -- [V6] (struct ConfigDev **) Use this tag to
  126.                 easily traverse through the expansion board list. Init the
  127.                 pointed variable with NULL. After each call, you will find
  128.                 the current ConfigDev pointer in this variable. If you are
  129.                 done, this function returns IDERR_DONE and the variable is set
  130.                 to NULL. See example.
  131.  
  132.         IDTAG_Secondary         -- [V7] (BOOL) If set to TRUE, identify will
  133.                 warn about secondary expansions. E.g. some graphic boards
  134.                 create more than one entry in the expansion list. Then, one
  135.                 entry is the primary entry, and any additional are secondary.
  136.                 This tag does only make sense when checking all mounted
  137.                 expansions. Defaults to FALSE. (See Bugs)
  138.  
  139.         IDTAG_ClassID           -- [V8] (ULONG *) The ULONG field will be filled
  140.                 with a numerical class ID of the expansion (see include file:
  141.                 IDCID_...). IMPORTANT: You MUST be prepared to get a number
  142.                 that does not match to any IDCID value. In this case, assume
  143.                 IDCID_MISC.
  144.  
  145.         IDTAG_Localize          -- [V8] (BOOL) FALSE to get English strings
  146.                 only, TRUE for localized strings. This is useful for applications
  147.                 with English as only language. Defaults to TRUE.
  148.  
  149.    EXAMPLE
  150.         To check all expansion boards, you may use this code:
  151.  
  152.         void PrintExpansions(void)
  153.         {
  154.           struct ConfigDev *expans = NULL;
  155.           char manuf[IDENTIFYBUFLEN];
  156.           char prod[IDENTIFYBUFLEN];
  157.           char pclass[IDENTIFYBUFLEN];
  158.  
  159.           while(!IdExpansionTags(
  160.                   IDTAG_ManufStr ,manuf,
  161.                   IDTAG_ProdStr  ,prod,
  162.                   IDTAG_ClassStr ,pclass,
  163.                   IDTAG_Expansion,&expans,
  164.                   TAG_DONE))
  165.           {
  166.             Printf("Current ConfigDev = 0x%08lx\n",expans);
  167.             Printf("  Manufacturer    = %s\n",manuf);
  168.             Printf("  Product         = %s\n",prod);
  169.             Printf("  Expansion class = %s\n\n",class);
  170.           }
  171.         }
  172.  
  173.    NOTE
  174.         If the manufacturer or the product is not known, the string will be
  175.         filled with its number.
  176.  
  177.         This call is guaranteed to preserve all registers except D0.
  178.  
  179.    BUGS
  180.         You must also provide IDTAG_ProdStr if you want to use IDTAG_Secondary.
  181.  
  182.         There are by far not all existing boards implemented. Please send
  183.         the manufacturer id and name and the products id, name and class
  184.         of all unknown boards to me. My E-Mail: "shred@chessy.aworld.de".
  185.  
  186.    SEE ALSO
  187.  
  188. identify.library/IdFunction                        identify.library/IdFunction
  189.  
  190.    NAME
  191.         IdFunction - identify function name by offset (V4)
  192.  
  193.    SYNOPSIS
  194.         Error = IdFunction(LibName,Offset,TagList)
  195.         D0.l                A0.l    D0.l   A1.l
  196.  
  197.         LONG IdFunction(STRPTR, LONG, struct TagItem *);
  198.  
  199.         Error = IdFunctionTags(LibName,Offset,Tag1,...)
  200.  
  201.         LONG IdFunctionTags(STRPTR, LONG, ULONG,...);
  202.  
  203.    FUNCTION
  204.         Decodes the offset of the provided library name into function name.
  205.  
  206.         This function requires the .fd files in a drawer with 'FD:' assigned
  207.         to it. All files must have the standard file name format, e.g.
  208.         'exec_lib.fd'.
  209.  
  210.         The appropriate .fd file will be scanned. The result will be
  211.         cached until the identify.library is removed from system.
  212.  
  213.    INPUTS
  214.         LibName       -- (STRPTR) name of the function's library, device
  215.                         or resource. All letters behind the point (and
  216.                         the point itself) are optional. The name is
  217.                         case sensitive.
  218.  
  219.                         Examples: 'exec.library', 'dos', 'cia.resource'.
  220.  
  221.         Offset        -- (LONG) offset of the function. It must be a
  222.                         multiple of 6. You do not need to provide the
  223.                         minus sign.
  224.  
  225.                         Examples: -456, 60
  226.  
  227.         TagList       -- (struct TagItem *) tags that describe further
  228.                         options.
  229.  
  230.    RESULT
  231.         Error         -- (LONG) error code, or 0 if everything went fine.
  232.  
  233.    TAGS
  234.         IDTAG_FuncNameStr       -- (STRPTR) Buffer where the function name
  235.                 will be copied into.
  236.  
  237.         IDTAG_StrLength -- (UWORD) Maximum length of the string buffer,
  238.                 including termination. Defaults to 50.
  239.  
  240.    NOTE
  241.         This call is guaranteed to preserve all registers except D0.
  242.  
  243.    BUGS
  244.         Every line in the .fd file must have a maximum of 254 characters.
  245.         Otherwise the internal offset table may be corrupted (but the
  246.         system won't be harmed). Anyhow, this should be no problem.
  247.  
  248.    SEE ALSO
  249.  
  250. identify.library/IdHardware                        identify.library/IdHardware
  251.    NAME
  252.         IdHardware - get information about the system, string (V3)
  253.  
  254.    SYNOPSIS
  255.         String = IdHardware(Type,TagList)
  256.          D0.l               D0.l   A0.l
  257.  
  258.         STRPTR IdHardware(ULONG, struct TagItem *);
  259.  
  260.         String = IdHardwareTags(Type,Tag1,...)
  261.  
  262.         STRPTR IdHardwareTags(ULONG, ULONG,...);
  263.  
  264.    FUNCTION
  265.         Gets information about the current system environment. The result
  266.         is returned as read only string. This function is fully DraCo
  267.         compatible!
  268.  
  269.         Once a information has been read, it will be cached internally, so
  270.         changes will be ignored. Use IdHardwareUpdate() to clear the cache
  271.         contents.
  272.  
  273.    INPUTS
  274.         Type          -- (ULONG) Information type. These types are known:
  275.  
  276.                 IDHW_SYSTEM     -- What system is used?
  277.                         (e. g. "Amiga 4000")
  278.  
  279.                 IDHW_CPU        -- What kind of CPU is available?
  280.                         (e. g. "68060")
  281.  
  282.                 IDHW_FPU        -- What kind of FPU is available?
  283.                         (e. g. "68060")
  284.  
  285.                 IDHW_MMU        -- What kind of MMU is available?
  286.                         (e. g. "68060")
  287.  
  288.                 IDHW_OSVER      -- What OS version is used?
  289.                         (e.g. "V39.106")
  290.  
  291.                 IDHW_EXECVER    -- What exec version is used?
  292.                         (e.g. "V39.47")
  293.  
  294.                 IDHW_WBVER      -- What WorkBench version is used?
  295.                         (e.g. "V39.29")
  296.  
  297.                 IDHW_ROMSIZE    -- Size of AmigaOS ROM
  298.                         (e.g. "512KB")
  299.  
  300.                 IDHW_CHIPSET    -- What Chipset is available?
  301.                         (e.g. "AGA")
  302.  
  303.                 IDHW_GFXSYS     -- What Graphic OS is used?
  304.                         (e.g. "CyberGraphX")
  305.  
  306.                 IDHW_CHIPRAM    -- Size of complete Chip RAM
  307.                         (e.g. "~2.0MB")
  308.  
  309.                 IDHW_FASTRAM    -- Size of complete Fast RAM
  310.                         (e.g. "12.0MB")
  311.  
  312.                 IDHW_RAM        -- Size of complete System RAM
  313.                         (e.g. "~14.0MB")
  314.  
  315.                 IDHW_SETPATCHVER -- [V4] Version of current SetPatch
  316.                         (e.g. "V40.14")
  317.  
  318.                 IDHW_AUDIOSYS   -- [V5] What Audio OS is used?
  319.                         (e.g. "AHI")
  320.  
  321.                 IDHW_OSNR       -- [V5] What AmigaOS is used?
  322.                         (e.g. "3.1")
  323.  
  324.                 IDHW_VMMCHIPRAM -- [V5] Size of virtual Chip RAM
  325.                         (e.g. "0")
  326.  
  327.                 IDHW_VMMFASTRAM -- [V5] Size of virtual Fast RAM
  328.                         (e.g. "40.0MB")
  329.  
  330.                 IDHW_VMMRAM     -- [V5] Size of total virtual RAM
  331.                         (e.g. "40.0MB")
  332.  
  333.                 IDHW_PLNCHIPRAM -- [V5] Size of non-virtual Chip RAM
  334.                         (e.g. "2.0MB")
  335.  
  336.                 IDHW_PLNFASTRAM -- [V5] Size of non-virtual Fast RAM
  337.                         (e.g. "12.0MB")
  338.  
  339.                 IDHW_PLNRAM     -- [V5] Size of total non-virtual RAM
  340.                         (e.g. "14.0MB")
  341.  
  342.                 IDHW_VBR        -- [V6] Vector Base Register contents
  343.                         (e.g. "0x0806C848")
  344.  
  345.                 IDHW_LASTALERT  -- [V6] Last Alert code
  346.                         (e.g. "80000003")
  347.  
  348.                 IDHW_VBLANKFREQ -- [V6] VBlank frequency (see execbase.h)
  349.                         (e.g. "50 Hz")
  350.  
  351.                 IDHW_POWERFREQ  -- [V6] Power supply frequency (see execbase.h)
  352.                         (e.g. "50 Hz")
  353.  
  354.                 IDHW_ECLOCK     -- [V6] System E clock frequency
  355.                         (e.g. "709379 Hz")
  356.  
  357.                 IDHW_SLOWRAM    -- [V6] A500/A2000 "Slow" RAM expansion
  358.                         (e.g. "512.0KB")
  359.  
  360.                 IDHW_GARY       -- [V6] GARY revision
  361.                         (e.g. "Normal")
  362.  
  363.                 IDHW_RAMSEY     -- [V6] RAMSEY revision
  364.                         (e.g. "F")
  365.  
  366.                 IDHW_BATTCLOCK  -- [V6] Battery backed up clock present?
  367.                         (e.g. "Found")
  368.  
  369.                 IDHW_CHUNKYPLANAR -- [V7] Chunky to planar hardware present?
  370.                         (e.g. "Found")
  371.  
  372.                 IDHW_POWERPC    -- [V7] PowerPC CPU present?
  373.                         (e.g. "603e")
  374.  
  375.                 IDHW_PPCCLOCK   -- [V7] PowerPC processor clock
  376.                         (e.g. "200 MHz")
  377.  
  378.                 IDHW_CPUREV     -- [V8] Revision of the main processor, if
  379.                         available (e.g. "Rev 1")
  380.  
  381.                 IDHW_CPUCLOCK   -- [V8] CPU clock
  382.                         (e.g. "50 MHz")
  383.  
  384.                 IDHW_FPUCLOCK   -- [V8] FPU clock, if available
  385.                         (e.g. "50 MHz")
  386.  
  387.                 IDHW_RAMACCESS  -- [V8] Access time of the main board RAM
  388.                         (e.g. "80 ns")
  389.  
  390.                 IDHW_RAMWIDTH   -- [V8] Width of the main board RAM
  391.                         (e.g. "16 bit")
  392.  
  393.                 IDHW_RAMCAS     -- [V8] CAS mode of the main board RAM
  394.                         (e.g. "Double")
  395.  
  396.                 IDHW_RAMBANDWIDTH -- [V8] Bandwidth of the main board RAM
  397.                         (e.g. "2")
  398.  
  399.         TagList       -- (struct TagItem *) tags that describe further
  400.                          options. You may provide NULL.
  401.  
  402.    TAGS
  403.         IDTAG_Localize          -- [V8] (BOOL) FALSE to get English strings
  404.                 only, TRUE for localized strings. This is useful for applications
  405.                 with English as only language. Defaults to TRUE.
  406.  
  407.         IDTAG_NULL4NA           -- [V8] (BOOL) TRUE to get NULL pointer instead
  408.                 of a 'not available' string. Defaults to FALSE.
  409.  
  410.    RESULT
  411.         String        -- (STRPTR) String containing the desired
  412.                 information, or NULL if not available. Note that
  413.                 all strings are READ ONLY!
  414.  
  415.    NOTE
  416.         This call is guaranteed to preserve all registers except D0.
  417.  
  418.    BUGS
  419.  
  420.    SEE ALSO
  421.         IdHardwareNum(), IdHardwareUpdate()
  422.  
  423. identify.library/IdHardwareNum                  identify.library/IdHardwareNum
  424.    NAME
  425.         IdHardwareNum - get information about the system, numerical (V6)
  426.  
  427.    SYNOPSIS
  428.         Result = IdHardwareNum(Type,TagList)
  429.          D0.l                  D0.l   A0.l
  430.  
  431.         ULONG IdHardwareNum(ULONG, struct TagItem *);
  432.  
  433.         Result = IdHardwareNumTags(Type,Tag1,...)
  434.  
  435.         ULONG IdHardwareNumTags(ULONG, ULONG,...);
  436.  
  437.    FUNCTION
  438.         Gets information about the current system environment. The result
  439.         is returned numerical. This function is fully DraCo compatible!
  440.  
  441.         Once a information has been read, it will be cached internally, so
  442.         changes will be ignored. Use IdHardwareUpdate() to clear the cache
  443.         contents.
  444.  
  445.    INPUTS
  446.         Type          -- (ULONG) Information type. These types are known
  447.                 (see include file and NOTE for detailed description):
  448.  
  449.                 IDHW_SYSTEM     -- What system is used?
  450.                         (include file: IDSYS_...)
  451.  
  452.                 IDHW_CPU        -- What kind of CPU is available?
  453.                         (include file: IDCPU_...)
  454.  
  455.                 IDHW_FPU        -- What kind of FPU is available?
  456.                         (include file: IDFPU_...)
  457.  
  458.                 IDHW_MMU        -- What kind of MMU is available?
  459.                         (include file: IDMMU_...)
  460.  
  461.                 IDHW_OSVER      -- What OS version is used?
  462.                         (version, revision)
  463.  
  464.                 IDHW_EXECVER    -- What exec version is used?
  465.                         (version, revision)
  466.  
  467.                 IDHW_WBVER      -- What WorkBench version is used?
  468.                         (version, revision; 0 if not available)
  469.  
  470.                 IDHW_ROMSIZE    -- Size of AmigaOS ROM
  471.                         (size in bytes)
  472.  
  473.                 IDHW_CHIPSET    -- What Chipset is available?
  474.                         (include file: IDCS_...)
  475.  
  476.                 IDHW_GFXSYS     -- What Graphic OS is used?
  477.                         (include file: IDGOS_...)
  478.  
  479.                 IDHW_CHIPRAM    -- Size of complete Chip RAM
  480.                         (size in bytes)
  481.  
  482.                 IDHW_FASTRAM    -- Size of complete Fast RAM
  483.                         (size in bytes)
  484.  
  485.                 IDHW_RAM        -- Size of complete System RAM
  486.                         (size in bytes)
  487.  
  488.                 IDHW_SETPATCHVER -- Version of current SetPatch
  489.                         (version, revision; 0 if not available)
  490.  
  491.                 IDHW_AUDIOSYS   -- What Audio OS is used?
  492.                         (include file: IDAOS_...)
  493.  
  494.                 IDHW_OSNR       -- What AmigaOS is used?
  495.                         (include file: IDOS_...)
  496.  
  497.                 IDHW_VMMCHIPRAM -- Size of virtual Chip RAM
  498.                         (size in bytes)
  499.  
  500.                 IDHW_VMMFASTRAM -- Size of virtual Fast RAM
  501.                         (size in bytes)
  502.  
  503.                 IDHW_VMMRAM     -- Size of total virtual RAM
  504.                         (size in bytes)
  505.  
  506.                 IDHW_PLNCHIPRAM -- Size of non-virtual Chip RAM
  507.                         (size in bytes)
  508.  
  509.                 IDHW_PLNFASTRAM -- Size of non-virtual Fast RAM
  510.                         (size in bytes)
  511.  
  512.                 IDHW_PLNRAM     -- Size of total non-virtual RAM
  513.                         (size in bytes)
  514.  
  515.                 IDHW_VBR        -- Vector Base Register contents
  516.                         (address)
  517.  
  518.                 IDHW_LASTALERT  -- Last Alert code
  519.                         (ULONG, 0xFFFFFFFF: no last alert yet)
  520.  
  521.                 IDHW_VBLANKFREQ -- VBlank frequency (see execbase.h)
  522.                         (ULONG, Unit Hertz)
  523.  
  524.                 IDHW_POWERFREQ  -- Power supply frequency (see execbase.h)
  525.                         (ULONG, Unit Hertz)
  526.  
  527.                 IDHW_ECLOCK     -- System E clock frequency
  528.                         (ULONG, Unit Hertz)
  529.  
  530.                 IDHW_SLOWRAM    -- A500/A2000 "Slow" RAM expansion
  531.                         (size in bytes)
  532.  
  533.                 IDHW_GARY       -- GARY revision
  534.                         (include file: IDGRY_...)
  535.  
  536.                 IDHW_RAMSEY     -- RAMSEY revision
  537.                         (include file: IDRSY_...)
  538.  
  539.                 IDHW_BATTCLOCK  -- Battery backed up clock present?
  540.                         (BOOL)
  541.  
  542.                 IDHW_CHUNKYPLANAR -- [V7] Chunky to planar hardware present?
  543.                         (BOOL)
  544.  
  545.                 IDHW_POWERPC    -- [V7] PowerPC CPU present?
  546.                         (include file: IDPPC_...)
  547.  
  548.                 IDHW_PPCCLOCK   -- [V7] PowerPC processor clock
  549.                         (ULONG clock in MHz units, or 0: not available)
  550.  
  551.                 IDHW_CPUREV     -- [V8] Revision of the main processor
  552.                         (LONG revision or -1 if not available)
  553.  
  554.                 IDHW_CPUCLOCK   -- [V8] CPU clock
  555.                         (ULONG clock in MHz units)
  556.  
  557.                 IDHW_FPUCLOCK   -- [V8] FPU clock, if available
  558.                         (ULONG clock in MHz units, or 0: not available)
  559.  
  560.                 IDHW_RAMACCESS  -- [V8] Access time of the main board RAM
  561.                         (ULONG in ns units, or 0: not available)
  562.  
  563.                 IDHW_RAMWIDTH   -- [V8] Width of the main board RAM
  564.                         (ULONG in bit, or 0: not available)
  565.  
  566.                 IDHW_RAMCAS     -- [V8] CAS mode of the main board RAM
  567.                         (include file: IDCAS_...)
  568.  
  569.                 IDHW_RAMBANDWIDTH -- [V8] Bandwidth of the main board RAM
  570.                         (ULONG in times, or 0: not available)
  571.  
  572.         TagList       -- (struct TagItem *) tags that describe further
  573.                          options. You may provide NULL.
  574.  
  575.    TAGS
  576.         None yet.
  577.  
  578.    RESULT
  579.         Result        -- (ULONG) Numerical result containing the desired
  580.                 information.
  581.  
  582.    NOTE
  583.         If you queried a version, you'll find the version in the *lower*
  584.         UWORD (because it is more important) and the revision in the
  585.         *upper* UWORD.
  586.  
  587.         All memory sizes are always in bytes.
  588.  
  589.         Boolean results are ==0 for FALSE, !=0 for TRUE.
  590.  
  591.         If you have to look up the result in the include file, you might
  592.         also get a numerical result that is beyond the maximum value you'll
  593.         find there. Be prepared for it! In this case, just print "not known"
  594.         or anything similar, or use the IdHardware() result.
  595.  
  596.         This call is guaranteed to preserve all registers except D0.
  597.  
  598.    BUGS
  599.  
  600.    SEE ALSO
  601.         IdHardware(), IdHardwareUpdate()
  602.  
  603. identify.library/IdHardwareUpdate            identify.library/IdHardwareUpdate
  604.    NAME
  605.         IdHardwareUpdate - invalidate the hardware information (V8)
  606.  
  607.    SYNOPSIS
  608.         IdHardwareUpdate()
  609.  
  610.         void IdHardwareUpdate(void);
  611.  
  612.    FUNCTION
  613.         Once a hardware information has been read, the result will be stored
  614.         in an internal cache. All subsequent queries return the cache entry,
  615.         irregarding of any changes.
  616.  
  617.         This function invalidates the cache and forces identify to re-check
  618.         ALL hardware features. Useful if e.g. the amount of memory has changed
  619.         after VMM has been started.
  620.  
  621.         Use this function wisely. DO NOT call it just to make sure to get the
  622.         latest information, let the user decide to do so. Also, DO NOT call
  623.         it when you will only query hardware information that will for sure
  624.         not change while run-time, e.g. CPU.
  625.  
  626.         IDHW_VBR and IDHW_LASTALERT are NOT cached, so there is absolutely no
  627.         need to call IdHardwareUpdate() just to check them out.
  628.  
  629.    INPUTS
  630.  
  631.    RESULT
  632.  
  633.    NOTE
  634.         This call is guaranteed to preserve all registers.
  635.  
  636.    BUGS
  637.         Calling this function in identify V8.0 will lead to a system crash.
  638.  
  639.    SEE ALSO
  640.         IdHardware(), IdHardwareNum()
  641.  
  642.